<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <!-- 导入axios包 -->
    <script src="./node_modules/axios/dist/axios.min.js"></script>
    <style>
      body {
        margin: 0;
        padding: 30px;
      }
      a {
        text-decoration: none;
      }
      table,
      th,
      td {
        margin-top: 20px;
        border: 1px solid black;
        /* 设置边框重合 */
        border-spacing: 0;
        border-collapse: collapse;
      }
      th,
      td {
        padding: 5px 10px;
      }
    </style>
  </head>
  <body>
    <h1>用户列表</h1>
    <a href="./add.html">添加用户</a>
    <table>
      <thead>
        <tr>
          <th>id</th>
          <th>用户名</th>
          <th>密码</th>
          <th>操作</th>
        </tr>
      </thead>
      <tbody>
        <!-- 用户数据将通过 JavaScript 动态填充 -->
      </tbody>
    </table>

    <script>
      // 获取 tbody
      const tbody = document.querySelector('tbody')

      // 添加事件委托处理点击事件
      tbody.addEventListener('click', function (event) {
        const target = event.target
        if (target.tagName === 'A' && target.textContent === '删除') {
          event.preventDefault()
          const id = target.dataset.id // 使用 data-id 属性获取 id
          deleteItem(id)
        }
      })

      // 发送 axios 请求
      axios.get('http://localhost:3000/users').then((res) => {
        console.log(res)

        // 获取所有用户的数组
        const arr = res.data

        // 将用户数组中 js 对象转成 DOM 字符串，再拼接成一整个字符串，填充到 tbody 中
        tbody.innerHTML = arr
          .map((item) => {
            return `<tr>
                        <td>${item.id}</td>
                        <td>${item.username}</td>
                        <td>${item.password}</td>
                        <td>
                                <a href="./edit.html?id=${item.id}">编辑</a>
                                <a href="#" data-id="${item.id}">删除</a>
                        </td>
                    </tr>`
          })
          .join('')
      })

      // 实现删除方法
      function deleteItem(id) {
        const flag = confirm('你确定要删除吗')

        if (flag) {
          axios.delete(`http://localhost:3000/users/${id}`).then((res) => {
            // 重新加载页面以刷新用户列表
            location.reload()
          })
        }
      }
    </script>
  </body>
</html>
